package com.Fh.exception_;

import java.util.Scanner;
//如果用户输入的不是一个整数，就提示他反复输入，知道输入一个整数为止
public class TryCatchExercise {
    public static void main(String[] args) {
//        //传统方式：
//        Scanner scanner = new Scanner(System.in);
//        boolean flag = false;
//        while (!flag) {
//            System.out.println("Enter an integer: ");
//            if (scanner.hasNextInt()) {
//                int input = scanner.nextInt();
//                System.out.println("====输入的是整数====");
//                System.out.println("The number is " + input);
//                flag = true;
//            } else {
//                System.out.println("The number is not an integer, please try again");
//                scanner.next();//清除无效输入，避免死循环
//            }
//        }
//        scanner.close();
//=======================================================================================================
        //现在利用异常的方式：
        Scanner sc = new Scanner(System.in);
        boolean flag = false;
        while (!flag) {
            try {
                System.out.println("请输入一个整数:");
                if (sc.hasNextInt()) {
                    int a = sc.nextInt();
                    System.out.println("输入格式正确,且这个数为" + a);
                    flag = true;
                } else {
                    throw new Age("输入的不是整数");
                }
            }catch (Age e) {
                System.out.println(e.getMessage()+"，请重新输入");
                sc.next();
            }
        }
        sc.close();
    }
}
class Age extends RuntimeException {
    public Age(String message) {
        super(message);
    }
}
